using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using UniversalAdmin.Application.Dto;
using UniversalAdmin.Application.Commands;

namespace UniversalAdmin.Application.Services
{
    public interface IAppSystemConfigService
    {
        Task<ApiResult<IEnumerable<SystemConfigDto>>> GetAllAsync(string? search = null);
        Task<ApiResult<SystemConfigDto>> GetByIdAsync(Guid id);
        Task<ApiResult> CreateAsync(CreateSystemConfigDto dto);
        Task<ApiResult> UpdateAsync(Guid id, UpdateSystemConfigDto dto);
        Task<ApiResult> DeleteAsync(Guid id);
        Task<ApiResult> EnableAsync(Guid id);
        Task<ApiResult> DisableAsync(Guid id);
        Task<ApiResult<PagedResult<SystemConfigDto>>> GetPagedAsync(PagedQuery query);
    }
} 